3c9132e7ad7d302dffdfa0dd3631e0f55446aece,sketch/src/main/java/me/xiaopan/sketch/request/LoadRequest.java,LoadRequest,saveProcessedImageToDiskCache,#Bitmap#,370
Before Change
DiskCache diskCache = getSketch().getConfiguration().getDiskCache();
ReentrantLock editLock = diskCache.getEditLock(getProcessedImageDiskCacheKey());
if (editLock != null) {
editLock.lock();
}
DiskCache.Entry diskCacheEntry = diskCache.get(getProcessedImageDiskCacheKey());
if (diskCacheEntry != null) {
diskCacheEntry.delete();
}
DiskCache.Editor diskCacheEditor = diskCache.edit(getProcessedImageDiskCacheKey());
if (diskCacheEditor != null) {
BufferedOutputStream outputStream = null;
try {
outputStream = new BufferedOutputStream(diskCacheEditor.newOutputStream(), 8 * 1024);
bitmap.compress(SketchUtils.bitmapConfigToCompressFormat(bitmap.getConfig()), 100, outputStream);
diskCacheEditor.commit();
} catch (DiskLruCache.EditorChangedException e) {
e.printStackTrace();
diskCacheEditor.abort();
} catch (IOException e) {
e.printStackTrace();
diskCacheEditor.abort();
} catch (DiskLruCache.ClosedException e) {
e.printStackTrace();
diskCacheEditor.abort();
} catch (DiskLruCache.FileNotExistException e) {
e.printStackTrace();
diskCacheEditor.abort();
} finally {
SketchUtils.close(outputStream);
}
}
if (editLock != null) {
editLock.unlock();
}
}
After Change
* ä¿?å˜bitmap到ç£?盘缓å˜
*/
private void saveProcessedImageToDiskCache(Bitmap bitmap) {
LockPool lockPool = getSketch().getConfiguration().getLockPool();
ReentrantLock editLock = lockPool.getDiskCacheEditLock(getProcessedImageDiskCacheKey());
editLock.lock();
DiskCache diskCache = getSketch().getConfiguration().getDiskCache();
DiskCache.Entry diskCacheEntry = diskCache.get(getProcessedImageDiskCacheKey());
if (diskCacheEntry != null) {
diskCacheEntry.delete();
}
DiskCache.Editor diskCacheEditor = diskCache.edit(getProcessedImageDiskCacheKey());
if (diskCacheEditor != null) {
BufferedOutputStream outputStream = null;
try {
outputStream = new BufferedOutputStream(diskCacheEditor.newOutputStream(), 8 * 1024);
bitmap.compress(SketchUtils.bitmapConfigToCompressFormat(bitmap.getConfig()), 100, outputStream);
diskCacheEditor.commit();
} catch (DiskLruCache.EditorChangedException e) {
e.printStackTrace();
diskCacheEditor.abort();
} catch (IOException e) {
e.printStackTrace();
diskCacheEditor.abort();
} catch (DiskLruCache.ClosedException e) {
e.printStackTrace();
diskCacheEditor.abort();
} catch (DiskLruCache.FileNotExistException e) {
e.printStackTrace();
diskCacheEditor.abort();
} finally {
SketchUtils.close(outputStream);
}
}
editLock.unlock();
}
protected void loadCompleted() {